package zwp.exercise.service.exercisedemo.chapterThree.basicdatatypes;

import java.util.Map;

/**
 * @Author zwp14
 * @create 2025/10/15 22:33
 * @description 基本数据类型练习Demo
 */
public class BasicDataExerciseDemo {
    public static void main(String[] args) {
        // 统计粮仓的粮食
        demoOne();

        System.out.println("--------------------------------------------------------");

        // 谁该交税？
        demoTwo();
    }

    /**
     * 谁该交税？ 员工A：4500，员工B：5500，交税需要达到5000，判断哪位员工需要交税，哪位员工不需要？
     */
    private static void demoTwo() {
        Map<String, Integer> map1 = Map.ofEntries(
                Map.entry("a", 4500),
                Map.entry("b", 5500));

        Map<String, Integer> map2 = Map.of(
                "a", 4500,
                "b", 5500);

        map1.forEach((key,value)->{
            if (isNeedTakeMoney(value)){
                System.out.println(key + "需要交税！");
            } else if (!isNeedTakeMoney(value)){
                System.out.println(key + "不需要交税！");
            }
        });

        System.out.println("--------------------------------------------------------");

        for (Map.Entry<String, Integer> entry : map2.entrySet()) {
            if (isNeedTakeMoney(entry.getValue())){
                System.out.println(entry.getKey() + "需要交税！");
            }else if (!isNeedTakeMoney(entry.getValue())){
                System.out.println(entry.getKey() + "不需要交税！");
            }
        }


        // 错误演示
//        int a = 4500;
//        int b = 5500;
//        // 添加到集合
//        List<Integer> moneyList = Arrays.asList(a,b);
//        // 遍历，给出谁需要交税，谁不需要交税
//        moneyList.forEach(money->{
//            String name = money.getClass().getName();
//            if (isNeedTakeMoney(money)){
//                System.out.println(name + "需要交税！");
//            } else if (!isNeedTakeMoney(money)){
//                System.out.println(name + "不需要交税！");
//            }
//        });
    }

    /**
     * 判断是否需要交税
     * @param money 工资
     * @return boolean类型
     */
    private static boolean isNeedTakeMoney(int money) {
        return money > 5000;
    }

    /**
     * 统计粮仓的粮食， 圆柱体，高3米，直径10米，每立方米粮食750kg，问该圆柱体能装多少粮食？
     */
    private static void demoOne() {
        double pai = 3.14;
        int high = 3;
        int r = 10/2;
        System.out.println("high:" + high + "，r:" + r + "，pai:" + pai);

        // 计算体积
        double volume = pai * r * r * 3;
        System.out.println("volume：" + volume);

        // 计算可以装下多少千克粮食
        int i = 750;
        double all = volume * i;
        System.out.println("共计可以装下："+ all + "kg粮食");
    }
}
